Figures for Berry's Construction

Nicholas Wheeler
March 2018

Figure 1

ContourPlot[{Re[Erf[x+I y]]==0,Im[Erf[x+I y]]==0},{x,-5,5},{y,-5,5},PlotPoints->100]

The null curves of real part (red) and imaginary part (blue) of Erf[x+iy].  Orthogonality at points of intersection follows from analyticity (i.e., from the Cauchy-Riemann equations).

Figures 2

ContourPlot[{Re[Erf[x+I y]]},{x,-5,5},{y,-5,5}]

ContourPlot[{Im[Erf[x+I y]]},{x,-5,5},{y,-5,5},PlotPoints->50]

Figures 3

Plot3D[{Re[Erf[x+I y]]},{x,-5,5},{y,-5,5},PlotRange->{{-5,5},{-5,5},{-10,10}},PlotPoints->50]

Plot3D[{Im[Erf[x+I y]]},{x,-5,5},{y,-5,5},PlotRange->{{-5,5},{-5,5},{-10,10}},PlotPoints->50]

In the flat parts of the top figure the real part of Erf[x+iy]is found never  to deviate by more than a few parts in a thousand from the value 1. In the bottom figure the flat portions of the imaginary part remain similarly close to the value 0. It is the flat parts of these figures that give rise to the condition b ⩽ (Subscript[b, max ])=2.

Figure 4

Plot3D[{Abs[Erf[x+I y]]},{x,-5,5},{y,-5,5},PlotRange->{{-5,5},{-5,5},{-10,10}},PlotPoints->50]

Figure 5

Yet another demonstration of how abrupt  and extreme is the stratospheric ascent at the edge of the flat desert:

ContourPlot[{Abs[Erf[x+I y]]==10,Abs[Erf[x+I y]]==100,Abs[Erf[x+I y]]==1000,Abs[Erf[x+I y]]==10000},{x,-5,5},{y,-5,5},PlotPoints->50]

Figures 6

X[x_,ν_,b_]:=((2 (Sqrt[ν]) (Cos[(1/2) ArcTan[(x/(2 ν))]]+((b/2)+(x/(2 ν))) Sin[(1/2) ArcTan[(x/(2 ν))]]))/(((1+((x^2)/(4 (ν^2)))))^(1/4)))
Y[x_,ν_,b_]:=((2 (Sqrt[ν]) (((b/2)+(x/(2 ν))) Cos[(1/2) ArcTan[(x/(2 ν))]]-Sin[(1/2) ArcTan[(x/(2 ν))]]))/(((1+((x^2)/(4 (ν^2)))))^(1/4)))
Z[x_,ν_,b_]:=X[x,ν,b]+I Y[x,ν,b]

ℰ[x_,ν_,b_]:=((Erf[Z[x,ν,b]]+Erf[Z[x,ν,-b]])/2)

Plot[Re[ℰ[2,50,b]],{b,0,3},PlotRange->{{0,3},{-1,3}},
GridLines->{{{1.9,Red},{2.1,Red}},{}}]

ℰ[2,50,1.9]
ℰ[2,50,2.1]

Plot[Re[ℰ[3,50,b]],{b,0,3},PlotRange->{{0,3},{-1,3}},
GridLines->{{{1.9,Red},{2.1,Red}},{}}]

ℰ[3,50,1.9]
ℰ[3,50,2.1]

Large values of ν can produce numbers so large that they exceed the capacity of the grapic command:

Plot[Re[ℰ[2,5000,b]],{b,0,3},PlotRange->{{0,3},{-1,3}},
GridLines->{{{1.9,Red},{2.5,Red}},{}}]

ℰ[2,5000,1.9]
ℰ[2,5000,2.5]

Figure 7

ErfFunction=ContourPlot[{Re[Erf[x+I y]]==0,Im[Erf[x+I y]]==0},{x,13,16},{y,13,16}, PlotPoints->50];

DataPoints=Graphics[{PointSize[Large],{Red,Point[{14.2772,13.5744}]},
{Red,Point[{14.2913,14.9884}]},
{Blue,Point[{14.3451,13.6426}]},
{Blue,Point[{14.3663,15.0563}]}}];

bLine2=ParametricPlot[{X[2,50,b],Y[2,50,b]},{b,0,3},AspectRatio->Automatic,PlotStyle->{Red}];
bLine3=ParametricPlot[{X[3,50,b],Y[3,50,b]},{b,0,3},AspectRatio->Automatic,PlotStyle->{Blue}];

Show[ErfFunction,DataPoints,bLine2,bLine3]

Figures 8

𝔹[x_,ν_,b_]:=(1/(Sqrt[1+I ξ]))Exp[(((b^2)x ξ)/(2(1+(ξ^2))))]Exp[I x(1+((b^2)/(2(1+(ξ^2)))))]/.ξ->(x/(2ν))

ν=100;
b=1.5;
Plot[{Re[𝔹[x,ν,b]],Cos[x(1+((b^2)/2))]},{x,0,20}]

ν=10000;
b=1.5;
Plot[{Re[𝔹[x,ν,b]],Cos[x(1+((b^2)/2))]},{x,0,100}]

ν=10000;
b=2;
Plot[{Re[𝔹[x,ν,b]],Cos[x(1+((b^2)/2))]},{x,0,100}]

ν=10000;
b=2.5;
Plot[{Re[𝔹[x,ν,b]],Cos[x(1+((b^2)/2))]},{x,0,100}]

The final figure, though qualititively similar to the others, cannot illustrate superoscillation because the assumption b = 2.5 > (Subscript[b, max])= 2 introduces terms with wavenumber > 1 into its construction.

Figure 9: Locus of saddlepoints, in the case b = (Subscript[b, max])

b=2.0;
SemicircleSegment=ParametricPlot[{((b ξ)/(1+(ξ^2))),(b/(1+(ξ^2)))},{ξ,0,1},PlotRange->{{0,1.05},{0,2.05}},PlotStyle->{Thick,Red},Ticks->{{0,1},{0,1,2}}];
SemicircleComplete=ParametricPlot[{((b ξ)/(1+(ξ^2))),(b/(1+(ξ^2)))},{ξ,1,200},PlotRange->{{0,1.05},{0,2.05}},PlotStyle->{Dashed,Thick,Black},Ticks->{{0,1},{0,1,2}}];
Show[SemicircleSegment,SemicircleComplete]

The red section is produced as ξ ranges from 0 to 1.

Figure 10: "Local wavenumber" 𝒦 in the case b = (Subscript[b, max])

𝒦[b_,ξ_]:=1+(1/2)(b^2)((1-(ξ^2))/(((1+(ξ^2)))^2))

LocalWavenumberSegment=Plot[𝒦[2,ξ],{ξ,0,1},PlotRange->{{0,5},{0,3}},GridLines->{{1},{1}},PlotStyle->{Thick,Red},Ticks->{{0,1,2,3,4,5},{0,1,2,3}}];
 LocalWavenumberComplete=Plot[𝒦[2,ξ],{ξ,1,5},PlotRange->{{0,5},{0,3}},GridLines->{{1},{1}},PlotStyle->{Thick,Dashed,Black},Ticks->{{0,1,2,3,4,5},{0,1,2,3}}];

Show[ LocalWavenumberSegment, LocalWavenumberComplete]

Only for ξ < 1 does 𝒦  have a superoscillatory value > 1, and that value is bounded in the case (Subscript[b, max]) by 3, as shown. The red portion of this curve can be identified with the red portion of Figure 9.

Figures 11

These are reconstructions of Berry's Figures 3a, 3b & 3c.

Figure 11a

b=2.0;
ν=12.5;
Berry3a1=Plot[{Re[𝔹[x,ν,b]],Cos[3x]},{x,0,6.1},PlotRange->{{0,6.2},{-10,5}}];
ExactDataPoints=Table[{(n/2),Re[𝔹[(n/2),ν,b]ℰ[(n/2),ν,b]]},{n,0,12}];
Berry3a2=ListPlot[ExactDataPoints,PlotStyle->{PointSize[Large]}];
Show[Berry3a1,Berry3a2]

Figure 11aa

b=2.0;
ν=12.5;
Berry3a1=Plot[{Re[𝔹[x,ν,b]]},{x,0,6},PlotRange->{{0,6.2},{-10,5}},PlotStyle->{Black,Thick}];
Berry3aa1=Plot[Re[𝔹[x,ν,b]ℰ[x,ν,b]],{x,0,6},PlotRange->{{0,6.2},{-10,5}},PlotStyle->{Red,Dashed,Thick}];
Show[Berry3a1,Berry3aa1]

Figure 11b

b=2.0;
ν=12.5;
Berry3b1=Plot[{Re[𝔹[x,ν,b]]},{x,40,46}];
ExactDataPoints3b=Table[{40+(n/2),Re[𝔹[40+(n/2),ν,b]ℰ[40+(n/2),ν,b]]},{n,0,12}];
Berry3b2=ListPlot[ExactDataPoints3b,PlotStyle->{PointSize[Large]}];
Show[Berry3b1,Berry3b2]

Figure 11c

b=2.0;
ν=12.5;
Plot[Log[10,Abs[Re[𝔹[x,ν,b]]]],{x,0,30},
PlotRange->{{0,30},{-4,13}},PlotStyle->Thick,
GridLines->{{0.55,2.70,21.25,27.35},{}},
GridLinesStyle->Directive[Red]]